Skip to content

feat: Back/Forward, risk flags, hidden characters, checkpoints and next unreviewed file - #24

Merged
jkyberneees merged 27 commits into
mainfrom
feat/review-navigation
Nov 10, 2026
Merged

jkyberneees merged 27 commits into
mainfrom
feat/review-navigation

Conversation

@jkyberneees

Copy link
Copy Markdown
Contributor

Five read-only features for reviewing what an agent changed. Each was chosen by a four-person expert panel (UX/accessibility, git/security, code navigation, agent workflow) and built test-first, one acceptance criterion per commit, with an independent review per slice and a final review. The panel votes and the findings → fixes tables are in DESIGN.md §27–§31.

What

  • Back / Forward (⌃- / ⌃⇧-; Ctrl+Alt+- / Ctrl+Shift+- on Linux; palette "Go Back" / "Go Forward"). Every jump is recorded across files: path:line, Go to Line or Symbol, search results, terminal links and codeviewer open. A rendered Markdown preview reopens as a preview. A reader who scrolled without clicking returns to the topmost visible line. The new position is announced.
  • Risk flags in Changes. Rows carry text badges for an added executable bit, a new symlink, CI configuration, git hooks, lockfiles, manifests and build files, and .env/registry files, and the summary shows "· N flagged". The server now reports git's file modes, so a bare chmod +x (no diff lines) shows up. The flags are hints, not a verdict.
  • Hidden characters. Changes counts zero-width, tag and variation characters and bidi controls in each changed file and adds a hidden badge. The scan reads regular files only, at most 1 MiB each and 32 MiB per listing, cached by size and mtime. The code view outlines each such character in place, so copying works as before. "Go to Next Hidden Character" walks them and announces the name and position. Emoji sequences, Persian and Indic joiners and a leading BOM are not counted.
  • Changes since a checkpoint. "Changes: Set Checkpoint" remembers every uncommitted file. "Changes: Since Checkpoint…" then lists only what changed after it and opens each file as a read-only diff from the checkpoint to now. "Changes: Clear Checkpoint" forgets it. The checkpoint lives in memory only and has caps. A file deleted while the checkpoint was being taken counts as deleted.
  • Next / Previous Unreviewed File (⌥F6 / ⌥⇧F6). Skips the files already reviewed and announces "path, N unreviewed left". A reviewed row is read as "reviewed" by screen readers, not only dimmed.
  • Polish from the reviews:
    • The Changes summary's live region is a single persistent role="status" element that never gets clipped.
    • api.ts throws ApiError with the HTTP status.

Docs

  • README: features, the key table and Security.
  • SECURITY.md: the bounded file scan; flags and markers are hints; checkpoints stay in memory.
  • DESIGN.md §27–§31, AGENTS.md layout table.
  • Landing page:
    • Two new tour screenshots (risk flags with a hidden-character marker; changes since a checkpoint).
    • The help and command palette shots retaken.
    • Back/Forward and ⌥F6 in the tour text.
    • Regenerated with bun run site.

Testing

  • bun run test: 1787 pass, 3 skip, 0 fail on macOS. This PR's CI is the first Linux run of the new tests.
  • Each feature also has sealed black-box checks that fail on the base and pass on the head.
  • app.ts can't be loaded by tests, so I drove the real app in WebKit (the bun run shots harness):
    • risk badges and "4 flagged";
    • Go to Next Hidden Character;
    • Set Checkpoint → Since Checkpoint… (3 entries);
    • ⌥F6 twice ("src/health.ts, 4 unreviewed left");
    • ⌃- after Go to File ("Back to src/router.ts line 5").

Known minor gaps

Left for a follow-up:

  • A hidden-character run split by syntax highlighting draws two markers.
  • The HEAD peek popup does not mark hidden characters.
  • Beyond the per-line marker budget, a hit shows as an escape.
  • A preview requested while its tab is still loading opens as source.

🤖 Generated with Claude Code

jkyberneees and others added 27 commits November 9, 2026 14:15
The tour gains two screenshots, risk flags with a hidden-character marker and the
changes-since-checkpoint list, and mentions Back/Forward (⌃- / ⌃⇧-) and ⌥F6. The help and
command palette shots are retaken: the palette now shows the Changes commands. SECURITY.md and
the README's Security section describe the bounded hidden-character scan (regular files, 1 MiB
each, 32 MiB per listing) and that flags and markers are hints, not a verdict.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

🚀 Deploying Preview to Cloudflare 🚀

Preview Deployments by commit

Status Deployment URL Commit Updated (UTC) See this deployment's details
  • Build: Failed ❌

View logs ↗
d391e4b 2026-11-10T05:42:04.429Z View logs ↗

@jkyberneees
jkyberneees merged commit 9b37006 into main Nov 10, 2026
4 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant